1. Field of the Invention
The present invention relates to systems and methods for downloading data from a network. More particularly, the present invention relates to the downloading and installation of remotely located files via the Internet and World Wide Web (WWW) to facilitate copying of the same.
2. Description of the Related Art
Personal Computers (PCs) are well known. People commonly use PCs to access information and to perform business on the Internet and WWW, as well as a multitude of other tasks, personal and commercial. Accordingly, software has been developed to run on PCs for virtually every conceivable use. And, people have become dependent upon their PCs and the software installed thereon, to assist them in running their households, businesses, agencies, etc. As such, software development and the inclusion of new, enhanced features to meet ever changing user needs, and distribution of such software have become important considerations in successfully marketing software packages.
Upgrading a client PC's software to a latest version has become increasingly important for a number of reasons. First, maintaining older versions of software can be very costly, both to end users and to software manufacturers. Second, it may become necessary to implement newer versions of software in order to fix bugs, close potential security holes, etc. Since PCs are so widely used in homes, offices, etc., accessing a user's PC to upgrade software is a universal problem.
There are several proposed solutions to the aforementioned problems associated with upgrading customer client software to newer versions. One proposed solution is to force software users to purchase an upgrade version packaged on a CD or magnetic disk(s). The software user must order the new software either in person at a store that sells such products, or over the phone, Internet, etc. Upon receipt, the software user must manually install the software onto his PC. The problem with this solution is that it forces software users to proactively procure the upgrade, and manually perform the upgrade, which may be complex and/or time consuming. Also, under this proposed solution, the process is not driven from the software manufacturer's end, and, therefore, the manufacturer may be forced to maintain older versions of the software in order to support users who fail to or refuse to perform timely upgrades, which could be very costly to the manufacturer.
Another proposed solution is to notify the user via an email mailing list (or other notification means) when new software is available. In the email, a download web site may be provided that the user can access to download the software upgrade via the Internet. Once the software is copied to a user's local machine, the user then must manually install the program via some sort of installation software and procedure. The problem with this second proposed solution is twofold.
First, the user must still download the software upgrade in the foreground of the computer, which takes up important network and computing bandwidth and minimizes the users ability to perform other tasks. Computer programs can be rather large in size and downloads can take a relatively long time (such as when downloading megabytes of program data via a 28.8 modem, for example). For example, over a conventional modem, a 10 Megabyte download could take hours to complete. Because of this, a second problem with this proposed solution is realized in that users tend to postpone these types of upgrades, which defeats the natural purpose of the upgrade. That is, this proposed solution encourages a user to delay upgrades which may be necessary, for example, for security reasons, bug fixes, etc. and therefore should be installed immediately or at least in a pre-conceived timely fashion. Therefore, this second proposed solution also poses a problem to software manufacturers by causing them to maintain older versions of the software in order to support users who fail to or refuse to perform timely upgrades.
Thus, there exists a need to provide new and improved systems and methods to solve the aforementioned problems associated with updating software packages and the like. To be viable, such systems and methods must be implemented without causing significant burdens to network infrastructures or undue increases in infrastructure costs.